﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.Dto
{
    public class EMRAddDto
    {
        /// <summary>
        /// 唯一标识符，作为主键且为自动增长列，用于在系统中唯一确定该招聘职位记录，类型为整数。
        /// </summary>
        [Key]
        public int MreId { get; set; }

        /// <summary>
        /// 一级机构编号，用于明确招聘职位所属的一级机构，方便在组织架构层面进行分类管理以及相关业务操作，类型为字符串（具体类型依实际情况而定）。
        /// </summary>
        public string? FirstKindId { get; set; }

        /// <summary>
        /// 一级机构名称，直观展示招聘职位所属的一级机构具体称呼，便于用户识别和理解，类型为字符串。
        /// </summary>
        public string? FirstKindName { get; set; }

        /// <summary>
        /// 二级机构编号，进一步细化招聘职位所在的机构层级，使其能准确关联到对应的二级机构，类型为字符串（具体类型依实际情况而定）。
        /// </summary>
        public string? SecondKindId { get; set; }

        /// <summary>
        /// 二级机构名称，便于清晰呈现招聘职位所属二级机构的具体称谓，有助于区分不同二级机构下的招聘职位，类型为字符串。
        /// </summary>
        public string? SecondKindName { get; set; }

        /// <summary>
        /// 三级机构编号，精准定位招聘职位所在的三级机构，便于系统内更细致的机构相关操作以及数据关联，类型为字符串（具体类型可按实际编号规则确定）。
        /// </summary>
        public string? ThirdKindId { get; set; }

        /// <summary>
        /// 三级机构名称，明确展示招聘职位所在三级机构的具体名称，类型为字符串。
        /// </summary>
        public string? ThirdKindName { get; set; }

        /// <summary>
        /// 职位编号，用于唯一标识招聘职位，方便进行职位相关的各种操作及数据关联，类型为字符串（具体类型可按实际编号规则确定）。
        /// </summary>
        public string? MajorId { get; set; }

        /// <summary>
        /// 职位名称，便于清晰呈现招聘职位的具体称谓，有助于用户区分不同招聘职位，类型为字符串。
        /// </summary>
        public string? MajorName { get; set; }

        /// <summary>
        /// 招聘人数，记录该招聘职位计划招聘的人员数量，类型为整数。
        /// </summary>
        public int? HumanAmount { get; set; }

        /// <summary>
        /// 招聘类型，如校园招聘、社会招聘等，用于区分不同的招聘途径或方式，类型为字符串（可根据实际招聘类型设定格式确定类型）。
        /// </summary>
        public string? EngageType { get; set; }

        /// <summary>
        /// 截至日期，设定该招聘职位的报名截止时间，类型为DateTime。
        /// </summary>
        public DateTime? Deadline { get; set; }

        /// <summary>
        /// 登记人，记录最初将该招聘职位信息录入系统的人员相关信息，类型为字符串。
        /// </summary>
        public string? Register { get; set; }

        /// <summary>
        /// 变更人，记录对该招聘职位信息进行修改操作的人员相关信息，类型为字符串。
        /// </summary>
        //public string? Changer { get; set; }

        /// <summary>
        /// 登记时间，记录招聘职位信息在系统中首次登记的时间，类型为DateTime。
        /// </summary>
        public DateTime? RegistTime { get; set; }

        /// <left>
        /// 变更时间，记录招聘职位信息每次变更的时间，类型为DateTime。
        /// </summary>
        //public DateTime? ChangeTime { get; set; }

        /// <summary>
        /// 职位描述，详细介绍招聘职位的工作内容、职责范围等信息，类型为字符串。
        /// </summary>
        public string? MajorDescribe { get; set; }

        /// <summary>
        /// 招聘要求，明确该招聘职位对候选人的学历、技能、经验等方面的要求，类型为字符串。
        /// </summary>
        public string? EngageRequired { get; set; }
        /// <summary>
        /// 职位分类id
        /// </summary>
        public string? MajorkindId { get; set; }

        /// <summary>
        /// 职位分类昵称
        /// </summary>
        public string? MajorkindName { get; set; }
    }
}
